Komplexität der Überprüfung, ob zwei Wörter in einer Sprache verschachtelt sind

9

Betrachten wir für eine feste Sprache in einem Alphabet A das folgende Problem, das ich L- INTERLEAVING nenne :L.EINL

  • Eingabe: zwei Wörter u,vA
  • Output: ob eine existiert Verschachtelung von und v , die in ist L .uvL

Hier ist eine Verschachtelung von zwei Wörtern und v ein Wort w , das intuitiv erhalten werden kann, indem die Buchstaben von u und v genommen werden, während ihre relative Reihenfolge beibehalten wird. Formal ist w eine Verschachtelung von u und v, wenn wir es in zwei disjunkte Teilsequenzen aufteilen können, eine, die gleich u ist, und eine, die gleich v ist . Zum Beispiel ist "bheleloll" eine Verschachtelung von "Hallo" und "Glocke".uvwuvwuvuv

Was ist die Komplexität des INTERLEAVING-Problems in Abhängigkeit von der Sprache L ? LLSpeziell:

  • Wenn regulär ist, können wir das Problem mit einem dynamischen Algorithmus für die beiden Zeichenfolgen lösen, der zeigt, dass es in der Klasse NL liegt. Ist es für einige reguläre Sprachen NL-schwer? Bei einigen regulären Sprachen liegt das Problem jedoch eindeutig in L (deterministischer Logspace). Gibt es eine Charakterisierung der Sprachen, für die das Problem in L liegt?L
  • Wenn nicht regulär ist, liegt das Problem immer noch in NL, wenn L eine polynomielle online deterministische Raumkomplexität aufweist (siehe hier für diesen Begriff oder meine frühere Frage ). Dies gilt jedoch nicht für alle kontextfreien Sprachen; Es kann jedoch auch gezeigt werden, dass einige andere (z. B. Palindrome) NL sind (z. B. indem gleichzeitig von Anfang bis Ende ein dynamischer Algorithmus ausgeführt wird). Gibt es eine kontextfreie Sprache, deren L- Interleaving-Problem NP-schwer ist?LLL
a3nm
quelle

Antworten:

6

Für ein Wort und für zwei ganze Zahlen i , j mit 1 i j bezeichnen wir mit w ( i , j ) das Unterwort w i w i + 1w j von w . Weiterhin lassen wir w ( 0 , 0 ) das leere Wort bezeichnen.w=w1wi,j1ijw(i,j)wichwich+1wjww(0,0)

  • Sei und v = v 1v n die beiden betrachteten Wörter.u=u1umv=v1vn
  • Angenommen, die kontextfreie Sprache wird durch eine kontextfreie Grammatik in Chomsky-Normalform angegeben.L

Erstellen Sie ein dynamisches Programm, in dem ein Zustand angegeben ist[i,j,r,s,A]

  • zwei ganze Zahlen mit 1 i j m oder i = j = 0i,j1ijmi=j=0
  • zwei ganze Zahlen mit 1 r s n oder r = s = 0r,s1rsnr=s=0
  • ein nicht-terminales Symbol in der kontextfreien GrammatikA

Entscheiden Sie für jeden Zustand, ob es in der kontextfreien Grammatik eine Ableitung gibt, die mit dem nicht-terminalen beginnt und mit einer Verschachtelung der beiden Wörter u ( i , j ) und w ( r , s ) endet . Diese Entscheidung kann leicht getroffen werden, wenn die Zustände in der richtigen Reihenfolge behandelt werden (kurze Unterwörter vor längeren Unterwörtern).Au(i,j)w(r,s)

Alles in allem ergibt dies eine Polynomialzeitalgorithmus für die -interleaving Problem jeder kontextfreien Sprache L .LL

Gamow
quelle
Vielen Dank! In der Tat hatte ich nicht bemerkt, dass diese Variante von en.wikipedia.org/wiki/CYK_algorithm funktionieren würde, um zu zeigen, dass das Problem für kontextfreie Sprachen in P ist. Mit diesem Algorithmus können wir jedoch nicht zeigen, dass das Problem in NL liegt: Wir müssen anscheinend eine logarithmische Anzahl von Vermutungen (die Höhe des Baums) vornehmen, wobei jede Vermutung logarithmisch ist (dh Positionen in der Zeichenfolge). Irgendwelche Ideen dazu?
A3NM
2
@ a3nm Ob das leere Wort zu einer CFL gehört, ist bereits P-schwer.
Sylvain
@ Sylvain: OK, es ist P-hart, aber in Abhängigkeit von der CFL. :) Denken Sie daran, dass in meinem Problem die Sprache (oder eine CFL dafür) festgelegt ist und die Eingabe nur aus zwei Zeichenfolgen besteht. Daher glaube ich nicht, dass dieses Argument zutrifft.
A3M
2
@ a3nm Entschuldigung, ich hatte in der Tat die Tatsache übersehen, dass die Sprache behoben wurde. Dann wäre der natürliche Kandidat die LogCFL-Härte.
Sylvain
@ Sylvain: Richtig, danke! In der Tat denke ich, dass das Wortproblem selbst für eine feste CFL-Sprache (dh Greibachs härteste Sprache) LogCFL-schwer ist. Daher gibt es insbesondere CFL-Sprachen, für die mein Problem LogCFL-schwer ist (nehmen Sie Fälle, in denen die zweite Zeichenfolge leer ist ). Umgekehrt stelle ich mir vor, dass Gamows Algorithmus in LogCFL (?) Ist. Trotzdem wundere ich mich über die Sprachen, für die mein Problem leichter zu lösen wäre, und darüber, wie sie kategorisiert werden könnten ...
a3nm