Nach meiner Erfahrung werden kontextsensitive Sprachen und linear begrenzte Automaten in Kursen zur Berechenbarkeitstheorie häufig übersprungen oder übersprungen und sogar in einigen bemerkenswerten Lehrbüchern weggelassen, obwohl endliche und Pushdown-Automaten viel Aufmerksamkeit erhalten. Sicherlich muss es einen guten Grund geben, warum LBAs weniger fokussiert werden als ihre Kollegen?
9
Antworten:
Mit "geeigneten" Modifikationen können wir diese Klassen in Komplexitätsklassen umwandeln; Endliche Automaten in , CFL in LogCFL und LBA in PSPACE.NC1
Es sollte jetzt ganz klar sein, warum wir uns mehr für die ersten beiden als für LBA interessieren. Die ersten beiden passen natürlich in die übliche Definition der realisierbaren Berechnung. PSPACE jedoch nicht.
quelle
Fragen Sie Ihren Professor, warum er es getan hat. Ich kann nur raten.
Sie sind nicht so interessant wie Turing-Komplettmodelle und PDAs, weil sie in der Leere der Nutzlosigkeit sind *, die sie natürlich mit ihrem Sprachäquivalent teilen: nicht so mächtig wie möglich, aber bereits sehr unlösbar.
Ein weiterer Grund könnte sein, dass nicht so viel über sie bekannt ist (hier erraten), aber das könnte auf ein Hühnerei-Problem zurückzuführen sein.
Es ist unklar, ist, was zu Problemen für die Didaktik führen kann. Außerdem sind typische Beweise (z. B. akzeptierte Sprache, Modelläquivalenzen) viel schwieriger als bei anderen Modellen.NLBA=DLBA
(*) absichtliche Übertreibung
quelle
Es scheint, dass nicht nur CSG, sondern auch CFG, ... heutzutage aus der Mode sind. Ich denke, heutzutage werden Automaten und PDAs normalerweise in Kursen zur Berechenbarkeits- / Komplexitätstheorie (wenn überhaupt) gedacht und dort nicht für sich selbst, sondern zur Einführung von Turing-Maschinen aufgenommen.
Grammatiken sind wahrscheinlich interessant für die Compilertheorie, aber weniger für die Berechenbarkeit / Komplexität, die in einem Einführungskurs enthalten sein soll. Es gibt zu viele Themen, die man behandeln möchte, aber ein Semesterkurs ist einfach zu kurz und wir müssen auswählen, und viele dieser Themen, die wir aus zeitlichen Gründen nicht behandeln können, sind viel interessanter als LBA.
quelle
Reguläre Ausdrücke und CFGs werden in der Praxis zum Parsen von Code (dh Programmiersprachen) verwendet. Der Grund ist, dass es sehr effiziente Algorithmen gibt, um sie zu analysieren. LBAs hingegen sind zu leistungsfähig, um sie in diesem Kontext tatsächlich zu verwenden.
Ein historischer Ursprung der Automatentheorie ist das Thema der Compilerkonstruktion. Aus dem oben genannten Grund sind nur reguläre Sprachen und CFGs zum Erstellen von Compilern nützlich (ungeachtet der Tatsache, dass attributive Grammatiken nicht wirklich CFGs sind und dass CFG-Parsing-Algorithmen nicht wirklich die gesamte Klasse von CFGs analysieren). LBAs könnten von Chomsky als ein mittleres Maß an Komplexität zwischen dem Alltäglichen und dem "Englischen" erfunden worden sein. Vielleicht ist der richtige Ort, um sie zu unterrichten, eher ein Sprachkurs als ein Informatikkurs!
quelle