Complexité de vérifier si deux mots ont un entrelacement dans une langue

9

Pour une langue fixe sur un alphabet A , considérons le problème suivant, que j'appelle L -INTERLEAVING :LAL

  • Entrée: deux mots u,vA
  • Rendement: s'il existe un entrelacement de et v , qui est en L .uvL

Ici, un entrelacement de deux mots et v est un mot w qui peut être obtenu intuitivement en prenant les lettres de u et v tout en gardant leur ordre relatif. Formellement, w est un entrelacement de u et v si nous pouvons le partitionner en deux sous-séquences disjointes, une qui est égale à u et l'autre qui est égale à v . Par exemple, "bheleloll" est un entrelacement de "bonjour" et de "cloche".uvwuvwuvuv

Quelle est la complexité du problème -INTERLEAVING, selon la langue L ? LLEn particulier:

  • Si est régulier, alors nous pouvons résoudre le problème avec un algorithme dynamique sur les deux chaînes qui montre qu'il est dans la classe NL. Est-ce difficile en NL pour certaines langues régulières? Cependant, pour certaines langues régulières, le problème est clairement dans L (espace de log déterministe). Existe-t-il une caractérisation des langues pour lesquelles le problème se situe en L?L
  • Si n'est pas régulier, le problème est toujours en NL lorsque L a une complexité d'espace déterministe en ligne polynomiale (voir ici pour cette notion, ou ma question précédente ). Cependant, cela ne couvre pas, par exemple, toutes les langues sans contexte; pourtant, certains autres (par exemple, les palindromes) peuvent également être présentés comme NL (par exemple, en faisant un algorithme dynamique simultanément depuis le début et la fin). Existe-t-il un langage sans contexte dont le problème d'entrelacement en L est difficile à NP?LLL
a3nm
la source

Réponses:

6

w=w1wi,j1ijw(i,j)wiwi+1wjww(0,0)

  • u=u1umv=v1vn
  • L

[i,j,r,s,A]

  • i,j1ijmi=j=0
  • r,s1rsnr=s=0
  • A

Au(i,j)w(r,s)

LL

Gamow
la source
Merci! En effet, je n'avais pas remarqué que cette variante de en.wikipedia.org/wiki/CYK_algorithm fonctionnerait pour montrer que le problème est en P pour les langages sans contexte. Cela dit, nous ne voyons pas comment montrer que le problème est en NL en utilisant cet algorithme: nous semblons avoir besoin de faire un nombre logarithmique de suppositions (la hauteur de l'arbre), chaque supposition étant logarithmique (c'est-à-dire, les positions dans le chaîne). Des idées à ce sujet?
a3nm le
2
@ a3nm L'appartenance du mot vide à une CFL est déjà difficile.
Sylvain
@Sylvain: OK, c'est P-dur, mais en fonction de la LCF. :) Rappelez-vous que dans mon problème, la langue (ou une CFL pour elle) est fixe, et l'entrée n'est que les deux chaînes, donc je ne pense pas que cet argument s'applique.
a3nm
2
@ a3nm désolé d'avoir en effet raté le fait que la langue a été corrigée. Le candidat naturel serait alors la dureté LogCFL.
Sylvain
@Sylvain: C'est vrai, merci! Donc, en effet, je suppose que le mot problème est logCFL-difficile même pour une langue CFL fixe (c'est-à-dire la langue la plus dure de Greibach), donc en particulier il y a des langues CFL pour lesquelles mon problème est LogCFL-dur (prenez des cas où la deuxième chaîne est vide ). Inversement, j'imagine que l'algorithme de Gamow est dans LogCFL (?). Pourtant, cela me fait me poser des questions sur les langues pour lesquelles mon problème serait plus facile que cela, et comment elles pourraient être classées ...
a3nm