Nicht-CFL-Verschlusseigenschaften


8

Ich wurde von einem Studenten wie folgt gefragt und konnte keine vollständige Antwort finden:

Gibt es Schließungseigenschaften für die Klasse von Sprachen, die nicht kontextfrei sind?

Es ist ziemlich einfach, Beispiele zu finden, die zeigen, dass es nicht unter Schnittmenge und Iteration geschlossen ist (Kleene-Sternoperator), aber wie wäre es mit Vereinigung und Verkettung? Ich vermute, dass es auch nicht geschlossen ist. Wenn ich also nicht weit weg bin, suche ich nach Beispielen für zwei Nicht-CFLs, deren Vereinigung oder Verkettung eine CFL ist.


3
Union hat triviale Gegenbeispiele, weil es unentscheidbare Sprachen gibt. Jede solche Sprache mit ihrer Ergänzung funktioniert.
Raphael

Meine Schüler sind mit dem Konzept der Unentscheidbarkeit noch nicht vertraut.
Shir

1
Sie brauchen keine Unentscheidbarkeit, Sie brauchen nur, dass weder die Sprache noch ihre Ergänzung eine CFL ist.
Emil Jeřábek

2
Die Verkettung hat auch triviale Gegenbeispiele: Nehmen Sie zwei beliebige nicht kontextfreie Sprachen L1 und L2, deren Vereinigung Σ * ist, und fügen Sie die leere Zeichenfolge sowohl zu L1 als auch zu L2 hinzu.
Tsuyoshi Ito

2
CFL¯{0w:wL1}{1w:wL1}Σ{0w:wL1}{1w:wΣ}{1w:wL1}{0w:wΣ}

Antworten:


11

Es gibt wahrscheinlich nur wenige oder keine "interessanten" und "natürlichen" Schließungseigenschaften für die Klasse von Sprachen, die nicht kontextfrei sind. In der Tat ist das wahrscheinlich wahr für:

  • Jede Klasse von Sprachen, die durch einen bestimmten Automaten, eine bestimmte Grammatik oder ein bestimmtes Rechenmodell definiert ist - die regulären Sprachen, die cfls, verschiedene Unterklassen der cfls wie die linearen Sprachen und die deterministischen cfls, die kontextsensitiven Sprachen, die begrenzten Sprachen und bald.

  • anbn

Der Grund ist, dass viele, wenn nicht die meisten oder alle "interessanten" Schließungseigenschaften die Fähigkeit haben, eine Sprache drastisch zu vereinfachen, beispielsweise sie auf endliche Mengen oder etwas ähnlich Einfaches abzubilden. Beispielsweise können Sie immer einen konstanten Homomorphismus (h (a) = 0) auf eine nicht kontextfreie Sprache anwenden und die Sprache aller Nullzeichenfolgen abrufen, die kontextfrei ist (tatsächlich regulär). Wenn also die Definition der Klasse bedeutet, dass sie nicht sehr "einfach" ist (wie nicht kontextfrei), führt Sie das Schließen zu "einfachen" Sprachen, dh außerhalb der Klasse.

Dies könnte tatsächlich ein interessantes Forschungsprojekt darstellen, dessen Teil, wie ich vermuten würde, darin bestehen würde, "einfach", "interessant" und "natürlich" auf geeignete Weise zu definieren und auch formale Wege zu finden, um mit trivialen und trivialen Dingen umzugehen entartete Fälle wie der, den ich gegeben habe.

Σ


a

{ani:i=n}

{an+i:i=n}

x


1
Ich mag diese Antwort.
Suresh Venkat
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.