Reguläre Sprachen, die nicht mit nur 2 Regex-Operationen ausgedrückt werden können

12

Ich dachte, alle regulären Sprachen könnten mit regulären Ausdrücken ausgedrückt werden (wenn eine Sprache regulär ist, kann sie mit regulärem Ausdruck ausgedrückt werden), aber mir wurde gesagt, dass Sie alle drei regulären Operationen (Verkettung, Vereinigung und Stern) dafür benötigen halten.

Mir wurde zum Beispiel gesagt, dass es eine reguläre Sprache geben würde, die ich mit diesen beiden nicht beschreiben kann , wenn ich nur die regulären Operationen union und concatenation regex (2 von 3) verwenden kann.

Das gleiche gilt für Kleene Star und Union. Was sind einige Beispiele dafür?

user3295674
quelle

Antworten:

19

Mit nur Vereinigung und Verkettung können Sie keine unendliche Sprache beschreiben. Die Vereinigung und Verkettung kann nur endlich viele Zeichenfolgen erzeugen. Mit nur union und dem Kleene-Stern können Sie keine Sprache wie , da es keine Möglichkeit gibt, einen Ausdruck, der nur a generiert, mit einem Ausdruck zu verknüpfen, der nur b generiert . Mit nur Verkettung und dem Kleene-Stern können Sie eine Sprache wie L = { a , b } nicht beschreiben .L={ab}abL={a,b}

DylanSp
quelle
3
.... und ist ohne Vereinigung nicht möglich. {a,b}
Raphael
Warum kann ich L = {a, b} nicht ohne Vereinigung beschreiben? Liegt es daran, dass sie nicht als separate Elemente mit Stern und Verkettung dargestellt werden können? Es konnte nur ab, bb, aba usw. tun?
User3295674
@ user3295674 Genau.
DylanSp
und so etwas wie L = {a *} wäre nicht nur mit Vereinigung und Verkettung möglich, oder? Ich danke dir sehr!
User3295674
Ich verstehe nicht einmal, wie ein Stern definiert werden würde, ohne dass eine Verkettung verfügbar wäre.
G. Bach
11

(abc)dddd1

Yuval Filmus
quelle
4

Ein weiterer interessanter Fall ergibt sich, indem Komplementierung als mögliche Operation zugelassen wird. Mit Vereinigung, Verkettung und Ergänzung (aber ohne Stern) kann man die Sprache erhaltenEINals Ergänzung der leeren Sprache. Man kann auch Sprachen wie erhalten(einb) und (ein(einb)b) (nicht so einfach zu sehen, wenn Sie den Trick nicht kennen), aber es gibt keine Möglichkeit, ihn zu erhalten (einein).

Wenn man nun erlaubt, Sterne zu verwenden, aber keine verschachtelten Sterne, dann ist es ein offenes Problem (seit mindestens 45 Jahren) zu wissen, ob man alle regulären Sprachen erhalten kann. Diese Frage ist als das verallgemeinerte Sternhöhenproblem bekannt . Es ähnelt dem von Yuval Filmus erwähnten Problem der Sternenhöhe, mit dem Unterschied, dass Komplementierung jetzt zulässig ist.

J.-E. Stift
quelle