Régularité du milieu exact des mots d'une langue régulière

8

Laisser Lêtre une langue régulière.
Est la langueL2={y:x,z  s.t.|x|=|z| and xyzL} ordinaire?

Je sais que c'est très similaire à la question ici , mais le hic, c'est que ce n'est pas une simple sous-chaîne d'un mot dans une langue régulière, mais plutôt un "milieu exact" - nous devons compter le préfixe et la longueur du suffixe.

Par conséquent, je suppose que ce n'est pas régulier, mais je n'ai pas trouvé de moyen de le prouver. Je ne pouvais pas non plus penser à un moyen de modifier le NFA deL accepter L2.

Tomer
la source
"milieu exact" semble suggérer |x|=|y|=|z|? Soit dit en passant, ce sera régulier aussi!
Hendrik Jan
Avez-vous essayé les trucs de notre question de référence ?
Raphael

Réponses:

6

Astuce: considérez certains DFA pour L. Pour chaquen0, laisser An être l'ensemble des états sde telle sorte qu'il y ait un mot de longueurn ce qui conduit le DFA de l'état initial à s. LaisserBn être l'ensemble des états tde telle sorte qu'il y ait un mot de longueurn qui mène le DFA de tà un état acceptant. Enfin, pour deux États quelconquess,t, laisser Rs,t être l'ensemble (régulier) de mots menant le DFA de s à t. On a

L2=n0sAntBnRs,t.
Puisqu'il n'y a que de nombreuses possibilités pour s,t, l'union est en fait finie, et donc régulière.
Yuval Filmus
la source
3

Soit soit un DFA pour . Sans perte de généralité, on suppose . Nous construisons un ε-NFA pour la manière suivante:D=(Q,Σ,δ,q0,F)LqS,qFQN=(Q{qS,qF},Σ,Δ,qS,{qF})L2

Trouver chaque trajet en de l' une quelconque . Pour chacun de ces chemins construisez les chemins pour (c'est-à-dire constuire toutes les "parties centrales" du chemin). Cela peut être fait efficacement. Construisez en combinant tous ces chemins, avec:Dq0fFpk:q0=qk,0αk,1qk,1αk,2αk,iqk,iαk,i+1αk,nkqk,nkpk(i):qk,iαk,i+1qk,i+1αk,i+2αk,nkiqk,nki0ink2Δ

  • (qS,ε,qk,i) pour tout comme ci-dessusi
  • (qk,nki,ε,qF) pour tout comme ci-dessusi

L(N) est régulier par construction.

Preuve que : Soit . Par construction, nous savons que doit correspondre au moins à l'un des chemins ci-dessus. Chacun de ces chemins appartient à un chemin en , qui contient un préfixe et un suffixe supplémentaires de longueur . Choisissez comme mot décrit par ce préfixe et celui décrit par le suffixe. On trouve que , avec . Avec le même raisonnement que nous trouvons pour chaque un chemin dans . Soit la longueur de etL(N)=L2wL(N)wpk(i)DixyxwyL|x|=|y|=iwL2Nixyappartenant à .w . pour certaines formespk(i)kw

Ainsi .L(N)=L2

ipsec
la source
Puisqu'il existe une infinité de chemins, la remarque "Cela peut être fait efficacement" semble avoir besoin d'explications. Notez qu'il n'est pas strictement nécessaire d'utiliser cette propriété, voir la réponse de Yuval, qui (pour moi) est une version "non efficace" du même argument.
Hendrik Jan
Tu as raison. Vous n'avez pas besoin de considérer les boucles deux fois. Le prochain point critique semble être qu'il existe des appartenant à , car avec la combinaison des chemins, de nouveaux chemins pourraient émerger. Vous voyez, je n'ai pas examiné en profondeur ma preuve, mais je pense que tous ces problèmes pourraient être résolus. pk(i)w
ipsec