MINT lernen

Abituraufgaben: Grenzen

Eine Fahrradstation ohne Obergrenze und HTML-Tags in beliebiger Tiefe — wo das Gedächtnis eines DEA endet.

Dein Fortschritt:
0 / 0 Aufgaben
1

Die Fahrradstation

13 BEAFB I–II

An einer Station für Leihfahrräder gibt es 3 Stellplätze. Jeder Vorgang wird protokolliert: r steht für eine Rückgabe (ein Rad mehr), l für eine Ausleihe (ein Rad weniger). Morgens ist die Station leer. Ein Protokoll über \(\Sigma=\{r,\,l\}\) heißt gültig, wenn zu keinem Zeitpunkt mehr als 3 oder weniger als 0 Räder in der Station stehen.

  1. Überprüfen Sie, welche der Protokolle rrl, rrrr, lr, rlrrl gültig sind. (3 BE)
  2. Zeichnen Sie den Zustandsgraphen eines DEA, der genau die gültigen Protokolle akzeptiert. (4 BE)
  3. Erläutern Sie, wie viele Zustände ein solcher DEA für eine Station mit \(k\) Stellplätzen benötigt, und warum sich dieses Vorgehen nicht auf eine (gedachte) Station ohne Obergrenze übertragen lässt. (4 BE)
  4. Die Stadt möchte nur Protokolle akzeptieren, die gültig sind und bei denen die Station am Ende wieder leer ist. Geben Sie an, wie Ihr DEA aus b) dafür geändert werden muss, und nennen Sie ein Protokoll, das dann zusätzlich abgelehnt wird. (2 BE)

Hinweise

Hinweis zu Aufgabe a)
Führen Sie nach jedem Zeichen die Anzahl der Räder mit.
Hinweis zu Aufgabe b)
Jede mögliche Radanzahl 0 bis 3 wird ein Zustand. Welche Zustände sind Endzustände? Was passiert bei einer vierten Rückgabe?
Hinweis zu Aufgabe c)
Zählen Sie die möglichen Radanzahlen und denken Sie an den Fehlerzustand. Wie viele verschiedene Radanzahlen muss sich der Automat ohne Obergrenze merken?
Hinweis zu Aufgabe d)
Übergänge ändern sich nicht — nur eine Eigenschaft der Zustände.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)
  • rrl: 1, 2, 1 — gültig
  • rrrr: 1, 2, 3, 4 — ungültig (vier Räder)
  • lr: −1 — ungültig (Ausleihe aus leerer Station)
  • rlrrl: 1, 0, 1, 2, 1 — gültig
Erwartungshorizont zu Aufgabe b)
Lösung: DEA der Fahrradstation
z0z1z2z3rlrlrl
Nicht eingezeichnete Übergänge führen in den Fehlerzustand zF.

zi bedeutet „i Räder in der Station“. Alle vier sind Endzustände, weil jedes bisher gültige Protokoll gültig ist; nur zF (nicht eingezeichnet) ist keiner.

Erwartungshorizont zu Aufgabe c)

Mögliche Radanzahlen 0, 1, …, \(k\): das sind \(k+1\) Zustände, dazu zF — insgesamt \(k+2\) Zustände. Für jede feste Zahl \(k\) ist das endlich.

Ohne Obergrenze kann die Radanzahl beliebig groß werden. Der Automat müsste jede Anzahl unterscheiden, denn nach \(n\) Rückgaben sind genau \(n\) Ausleihen erlaubt, nach \(n+1\) Rückgaben eine mehr. Das verlangt unendlich viele Zustände — ein DEA hat aber nur endlich viele.

Erwartungshorizont zu Aufgabe d)

Nur z0 bleibt Endzustand; z1, z2, z3 werden zu normalen Zuständen. Die Übergänge bleiben gleich. Zusätzlich abgelehnt wird z. B. rrl (am Ende steht noch ein Rad in der Station).

2

Geschachtelte HTML-Tags

17 BEAFB II–III

Ein Editor für Webseiten prüft, ob die Formatierungs-Tags <b> (fett) und <i> (kursiv) korrekt geschachtelt sind. Er betrachtet nur die Tags und ignoriert den Text dazwischen; das Eingabealphabet ist also \(\Sigma=\{\)<b>, </b>, <i>, </i>\(\}\).

Korrekt geschachtelt heißt: Jedes schließende Tag schließt das zuletzt geöffnete, noch offene Tag derselben Art, und am Ende ist kein Tag mehr offen.

  1. Ordnen Sie die Tag-Folgen <b> <i> </i> </b>, <b> <i> </b> </i>, <i> </i> <b> </b>, </b> <b> den Kategorien „korrekt geschachtelt“ und „nicht korrekt geschachtelt“ zu und begründen Sie jeweils kurz. (3 BE)
  2. Beweisen Sie, dass kein DEA die Sprache aller korrekt geschachtelten Tag-Folgen erkennt. Es genügt, Folgen zu betrachten, die nur <b> und </b> enthalten. (5 BE)
  3. Der Editor soll zunächst nur Schachtelungstiefen bis 2 zulassen: Es dürfen höchstens zwei Tags gleichzeitig offen sein. Entwerfen Sie einen DEA für die korrekt geschachtelten Folgen mit höchstens Tiefe 2. Geben Sie ihn als Übergangstabelle mit der Bedeutung der Zustände an. (5 BE)
  4. Ein Entwickler argumentiert: „Echte HTML-Dateien sind immer endlich lang. Deshalb kann man ihre Schachtelung doch mit einem DEA prüfen.“ Erörtern Sie diese Aussage. (4 BE)

Hinweise

Hinweis zu Aufgabe a)
Notieren Sie nach jedem Tag die Liste der noch offenen Tags. Ein schließendes Tag muss zum letzten Eintrag passen.
Hinweis zu Aufgabe b)
Gehen Sie wie beim Nachweis für \(\{a^nb^n\mid n\ge0\}\) vor: Annahme, \(k+1\) Vorgeschichten mit öffnenden Tags, Schubfachprinzip, passender Anhang, Widerspruch.
Hinweis zu Aufgabe c)
Der Automat muss nicht nur die Tiefe, sondern auch die Reihenfolge der offenen Tags kennen — <b><i> und <i><b> verlangen unterschiedliche schließende Tags. Wie viele verschiedene Listen offener Tags der Länge 0, 1 und 2 gibt es?
Hinweis zu Aufgabe d)
Was passiert mit der Zahl der Zustände, wenn die erlaubte Tiefe wächst — besonders, wenn es mehr als zwei Tag-Arten gibt? Gibt es eine sinnvolle feste Obergrenze?

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)
  • <b> <i> </i> </b>: korrekt — innen wird <i> geschlossen, dann <b>.
  • <b> <i> </b> </i>: nicht korrekt — </b> kommt, während <i> zuletzt geöffnet wurde (Überkreuzung).
  • <i> </i> <b> </b>: korrekt — zwei nacheinander geschlossene Bereiche.
  • </b> <b>: nicht korrekt — </b> schließt ein Tag, das nie geöffnet wurde.
Erwartungshorizont zu Aufgabe b)

Annahme: Ein DEA \(A\) mit \(k\) Zuständen erkennt die Sprache. Schreibe kurz \(o\) für <b> und \(s\) für </b>.

Die \(k+1\) Vorgeschichten \(o^0, o^1, \dots, o^k\) enden in nur \(k\) Zuständen (Schubfachprinzip): Zwei davon, \(o^i\) und \(o^j\) mit \(i<j\), enden im selben Zustand.

Hängt man an beide \(s^i\) an, liest \(A\) ab diesem Zustand dieselben Zeichen und endet im selben Zustand: \(A\) akzeptiert \(o^is^i\) genau dann, wenn es \(o^js^i\) akzeptiert.

Aber \(o^is^i\) ist korrekt geschachtelt, \(o^js^i\) nicht (es bleiben \(j-i\) Tags offen). Widerspruch — die Annahme ist falsch. (Die Teilsprache \(\{o^ns^n\mid n\ge0\}\) entspricht gerade \(\{a^nb^n\mid n\ge0\}\).)

Erwartungshorizont zu Aufgabe c)
Zustand<b></b><i></i>Bedeutung
z0z1zFz2zFkeine offenen Tags
z1z3z0z4zFoffen: <b>
z2z5zFz6z0offen: <i>
z3zFz1zFzFoffen: <b>, <b>
z4zFzFzFz1offen: <b>, <i>
z5zFz2zFzFoffen: <i>, <b>
z6zFzFzFz2offen: <i>, <i>
zFzFzFzFzFFehler

(→ Startzustand, doppelt unterstrichen: Endzustand.) Jeder Zustand steht für die Liste der offenen Tags (zuletzt geöffnetes rechts): \(1+2+4=7\) Zustände und zF. Nur z0 ist Endzustand, weil am Ende nichts mehr offen sein darf.

Erwartungshorizont zu Aufgabe d)

Pro: Legt man eine feste maximale Tiefe \(t\) fest, gibt es nur endlich viele Listen offener Tags. Wie in c) lässt sich dann ein DEA bauen; für jede konkrete, endliche Datei existiert eine ausreichende Tiefe.

Contra: Die Zahl der Zustände wächst exponentiell: Bei \(m\) Tag-Arten und Tiefe \(t\) sind es \(1+m+m^2+\dots+m^t\) Zustände (bei 100 HTML-Tags und Tiefe 20 astronomisch viele). Außerdem muss die Grenze vorher feststehen — eine Datei mit Tiefe \(t+1\) würde fälschlich abgelehnt. Die Sprache aller korrekt geschachtelten Dateien ist nach b) nicht durch einen DEA erkennbar.

Fazit: Die Aussage stimmt nur für eine vorher festgelegte Tiefe und ist praktisch unbrauchbar. Editoren prüfen die Schachtelung deshalb mit einem Programm, das die offenen Tags in einer Liste mit beliebiger Länge speichert — also mit unbeschränktem Speicher, den ein endlicher Automat nicht hat.