VL 05

Pumping Lemma

  • Wir schauen, ob wir unseren kram Zerlegen können (also den automaten)
  • Wir schauen genauer gesagt, ob wir eine schleife haben, die wir zum "aufpumpen" nutzen können, indem wir sie dauerhauft durchlaufen
  • Auch wenn wir das mal durchlaufen, sollte die Schleife nichts an der Akzeptanz ändern
  • Das funktioniert übrigens auch, bei begrenzten Sprachen
  • Wir wollen aber mit dem pumping Lemma herausfinden, wenn irgendetwas nicht regulär ist
    • Das finden wir heraus, wenn wir einfach den "dann" teil des Pumping-Lemmas invertieren, sprich einfach umdrehen
    • Dann ist das natürlich aber dann auch nicht regulär

Beispiel

  • Wir haben eine Sprache mit beliebig vielen as und ms, aber gleich viele
  • Wir müssen für jedes Zeigen, dass es für das n die geforderten eigenschaften braucht
    • alias mindestens muss der String die Länge haben
    • Wenn wir einen String mit wählne, hat der string die mindestlänge von was ja unserer forderung gerecht wird
  • Wichtig ist, dass die Variablen wir wählen, auch immernoch die "regeln" beziehungsweise die "Vorgaben" der Sprache respektiert
  • In unserem Beispiel reden wir von dem
    • Wichtig ist da, dass wir das nicht wählen können, sondern dass uns das von "aussen" angegeben wird
    • Geanu so gilt das für die Zerlegung

Spieler?

  • Wir können uns das so vorstellen, dass wir wie zwei Spieler gegeneinander Spielen
  • Wir versuchen auf der einen Seite alles zusammenzuhalten, und gleichzeitig versucht unser gegenspieler, dass alles wieder kaputt zu machen >:(

Aber wie hat das was mit regulären Ausdrücken zu tun?

  • Wir schauen uns eine tolle Kaffemaschine an
    • Die funktioniert nur, wenn wir eine Münze (oder so) eingeworfen haben
    • Das können wir auch regulär ausdrücken
      • Erst muss das zeichen für Münze kommen, und dann den rest
  • Wie können wir den überprüfen, ob ein Automat die eigenschaften unserer Sprache erfüllt?
    • Wir müssen sicher gehen, dass alle wörter die der Automat akzeptiert, auch in unserer Sprache liegen
  • Wenn wir uns das so anschauen, wäre es schon sehr cool eine "Toolbox" zu haben, aus der wir "Bausteine" kopieren könnten
    • Achja und testen bestimmt jaja