Formale Sprachen #28 - Kellerautomaten

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ม.ค. 2015
  • Wir definieren Kellerautomaten und sehen an einem Beispiel, wie sie funktionieren.

ความคิดเห็น • 57

  • @RomanZimmer
    @RomanZimmer 9 หลายเดือนก่อน +25

    Bester TH-camr zum Thema Theoretische Informatik im deutschsprachigen Raum! Das ist für mich die perfekte Ergänzung bzw. schnell mal nachgucken wie nochmal was funktioniert hat, für einige die letzte Rettung für die Klausur.
    Einfach top dieser Channel. Mit Videos für die Ewigkeit, ich meine das Ding ist 8 Jahre alt, ist aber immer noch für viele Informatikstudenten relevant!

  • @RobTain
    @RobTain 2 ปีที่แล้ว +11

    Ich schreib bald ne Klausur über diesen Stoff. Ohne deine Videos wäre ich bereits hoffnungslos verloren. Danke dafür!

  • @gigi19994
    @gigi19994 4 ปีที่แล้ว +68

    Dieser Moment wenn du in der Vorlesung verzweifelt da sitzt, und versuchst den Prof zu verstehen. Dann Zuhause vergebens versuchst mit den Folien den Stoff nachzuarbeiten und schon echte Bedenken aufkommen, ob man vielleicht selber einfach zu hohl ist um das Ganze zu verstehen. Dann plötzlich auf deine Videos stößt und alles was der Prof versucht hat in den 2 Std zu erklären, du innerhalb weniger Minuten auf Anhieb so gut verstanden hast, dass du nicht mal mehr beim Lösen einer Aufgabe erstmal nachschlagen musst, wie das alles nochmal war. 😎 Danke vielmals!!

    • @lunamoon6146
      @lunamoon6146 4 ปีที่แล้ว +1

      Ich hoffe fast, dass wir den gleichen Prof haben... und glaube es auch.

    • @gigi19994
      @gigi19994 4 ปีที่แล้ว

      @@lunamoon6146 würde mich nicht wundern😁

    • @myzo3050
      @myzo3050 6 หลายเดือนก่อน

      Liegt halt daran das der Ehrenmann das so gut erklärt hat

  • @rizzy--
    @rizzy-- 4 ปีที่แล้ว +56

    Ich liebe dich 😂❤️

  • @Andi-oq1xc
    @Andi-oq1xc 4 ปีที่แล้ว +8

    Sachlich einfach, schritt für schritt, einfach perfekt. Danke!

  • @imkeklinkenborg7693
    @imkeklinkenborg7693 4 ปีที่แล้ว +6

    Ich habe es endlich verstanden. Vielen Dank, super Erklärung!
    Wir schreiben morgen eine Klausur über NEAs, DEAs und Kellerautomaten, die Kellerautomaten habe ich im Unterricht nie verstanden. Demnach Danke!! :D

  • @Alex-ch3pe
    @Alex-ch3pe 8 ปีที่แล้ว +22

    Irgendwie erinnert mich der Kellerautomat an das Spiel TIS-100... Hmm.
    Deine Videos sind Top! Unser Skript ist echt für die Tonne, deine Erklärungen hignegen sind super und Idiotensicher.

  • @johnbernard5282
    @johnbernard5282 4 ปีที่แล้ว +2

    Sehr gut. Genau der richtige schwierigkeitsgrad

  • @galynagrynova84
    @galynagrynova84 3 ปีที่แล้ว +2

    das ist mir wirklich sehr gut geholfen:) so gut erklärt wie hier, habe ich nicht gefunden. danke für deine tolle Arbeit! Es bleibt noch die Hoffnung, dass ich die Prüfung bestehe ))Ich begreife es kaum, so wie es uns unterrichtet werden.Unser quasi "außerirdische" Vorlesungsskript verstehe ich nur nach den Videos aus deinem Kanal.

  • @NLogSpace
    @NLogSpace  9 ปีที่แล้ว +5

    Randy Welt Das LIFO-Prinzip verwenden wir, damit wir beliebig weit geschachtelte , korrekt geklammerte Ausdrücke erkennen können. Diese kommen an vielen Stellen vor, auch die Syntax der meisten Programmiersprachen basiert darauf. (Denke bei der Sprache im Video bei "a" an eine öffnende Klammer oder ein "begin", bei "b" an eine schließende Klammer oder ein "end".) Die Syntax von Programmiersprachen lassen sich also mittels Kellerautomaten beschreiben, wenn wir das LIFO-Prinzip für den Speicher benutzen, da man immer die Klammer zuerst schließen muss, die zuletzt geöffnet wurde.
    Über die Frage, was bei einem FIFO-Speicher passieren würde, habe ich noch nie nachgedacht, eine interessante Frage! Ich werde wieder antworten, wenn ich es herausgefunden habe.

  • @janikti8605
    @janikti8605 7 ปีที่แล้ว +3

    Vielen Dank für deine super Hilfe

  • @NLogSpace
    @NLogSpace  9 ปีที่แล้ว +6

    Randy Welt Mit einem FIFO-Speicher würde es sich um einen sogenannten "Queue automaton" handeln, in der englischen Wikipedia gibt es einen Eintrag dazu. Dieses Automatenmodell ist interessanterweise deutlich mächtiger als ein Kellerautomat, und zwar äquivalent zu Turing-Maschinen bzw. Typ-0-Grammatiken.

  • @francescogruen2385
    @francescogruen2385 5 ปีที่แล้ว +1

    Richtig gut erklärt, Kompliment!

  • @xXPK26realXx
    @xXPK26realXx 7 ปีที่แล้ว +2

    Danke!

  • @spirosxenerotos828
    @spirosxenerotos828 8 ปีที่แล้ว +14

    danke danke danke

  • @D4lio55
    @D4lio55 4 ปีที่แล้ว +2

    sehr gutes video, wirklich hilfreich für die klausur morgen :D

  • @Ali-ny4wi
    @Ali-ny4wi 4 ปีที่แล้ว +3

    Like bevor das Video abspielen:)

  • @luiscosta7316
    @luiscosta7316 8 ปีที่แล้ว +1

    Als das erste mal 'b' gelesen wird, wird der ​(ɛ; A->A) übergang benutzt, heißt das also, dass, wenn der Übergang 'b' nicht enthält, der Lesekopf an der gleichen Stelle bleibt?

  • @Zwackelmann173
    @Zwackelmann173 4 ปีที่แล้ว +1

    Turbo nice :D

  • @oliveryt7168
    @oliveryt7168 2 ปีที่แล้ว

    Hilfreiche Zusatzinformationen!

  • @bigboss7936
    @bigboss7936 2 ปีที่แล้ว

    bester man

  • @randywelt8210
    @randywelt8210 9 ปีที่แล้ว +1

    Warum verwenden wir als Speicher ausgerechnet das LIFO Prinzip? Was ist mit dem FIFO Speicher? Zu welcher Grammatik gehört der?

  • @JohnnyHRO
    @JohnnyHRO 2 ปีที่แล้ว +1

    Sehr gute Erklärung des Kellerautomaten.
    Aber ich hätte eine Frage und zwar kann man einen kellerautomaten in einem Syntaxdiagramm darstellen im Beispiel von Klammerschachtellungen

  • @farzanehhaidary6622
    @farzanehhaidary6622 9 ปีที่แล้ว +4

    Vielen vielen Dank für die gut erklärten Videos! Könnten Sie vielleicht ein Video zur Zeit- und Platzkomplexität machen?

    • @NLogSpace
      @NLogSpace  9 ปีที่แล้ว +2

      Ja, Videos zur Komplexität plane ich auch bald zu machen.

  • @ReddDevil1982
    @ReddDevil1982 7 หลายเดือนก่อน

    Prinzip gut erklärt. Rückfrage: Woran erkennst du, dass der von dir gezeigte Kellerautomat Nichtdeterministisch ist?
    a;A -> AA und epsi;A -> A drück dies den Nichtdeterminimus aus? Wenn ja, warum?
    Bei ersten lese ich das a, im Keller steht A beim zweiten lese ich epsi (nichts) im Keller steht A

  • @mcari
    @mcari 6 ปีที่แล้ว

    Darf man auch mehrere Symbole vom Stack in einem Übergang löschen?
    Man könnte ja theoretisch auch einfach einen weiteren "Hilfszustand" verwenden, wenn es nicht zulässig wäre, der erst das eine und dann mit einem epsilonübergang das zweite symbol löscht.
    Aber ist es laut Definition erlaubt, beispielsweise ein a zu lesen und dabei AA -> epsilon zu ersetzen?

    • @NLogSpace
      @NLogSpace  6 ปีที่แล้ว +1

      McAri Laut der gewöhnlichen Definition darf man pro Übergang nur ein einziges Symbol vom Stack lesen, aber genau wie du sagst, kann man den allgemeineren Fall mit mehreren Zuständen und Epsilon-Übergängen simulieren.

    • @mcari
      @mcari 6 ปีที่แล้ว

      Alles klar, danke für die fixe Antwort.
      Wenn ich die Prüfung bestehe gibts 100€/Meine Note als Spende. Wirklich klasse Videos!

    • @NLogSpace
      @NLogSpace  6 ปีที่แล้ว

      McAri Haha, na dann drücke ich Dir die Daumen für deine 1.0! ;)

  • @moustafawafaeibaaj5264
    @moustafawafaeibaaj5264 4 ปีที่แล้ว +1

    Super erklärt , ich habe aber klein Frage , wie Unterscheidet man zwichen die Sprachen die im L1 oder L2 sind ? also wie weise ich ob irgendeine Sprache in L1 oder in L2 steht ? pumping lima reicht leider nicht dazu !
    Vielen Dank für dein mühe .

    • @NLogSpace
      @NLogSpace  4 ปีที่แล้ว +2

      Hi, also wenn eine Sprache in L2 ist, dann kannst Du eine kontextfreie Grammatik oder einen Kellerautomaten angeben. Wenn sie nicht in L2 ist, dann kannst Du versuchen das mit dem Pumping Lemma zu zeigen. Und wenn Du zeigen möchtest, dass sie tatsächlich in L1 liegt, dann kannst Du eine sogenannte monotone Grammatik angeben, zu diesem Thema habe ich auch schon Videos gemacht.

    • @moustafawafaeibaaj5264
      @moustafawafaeibaaj5264 4 ปีที่แล้ว

      Alles klar, danke für die Antwort :)

  • @trashtatur
    @trashtatur 7 ปีที่แล้ว

    Ist man nicht von Anfang an in den ersten beiden Zuständen dank der Kante epsilon; C0 --> C0. Also bei nichts und C0 hat man nen Übergang. Weil du sagst ja das der Übergang erst später passiert ist o_O

  • @DaevLC
    @DaevLC 6 ปีที่แล้ว

    Du sagst:" Wichtig ist das ein Kellerautomat nicht deterministisch ist"(12:43). Wenn ich Determinismus richtig verstanden habe kann es doch aber auch deterministische Kellerautomaten geben oder? Sollte es nicht eher heißen "ein Kellerautomat muss nicht deterministisch sein" und ist es meistens auch nicht? :D

    • @NLogSpace
      @NLogSpace  6 ปีที่แล้ว

      Ja, also ich hätte besser sagen sollen: Nichtdeterminismus ist erlaubt. Wenn man Nichtdeterminismus bei Kellerautomaten verbietet, also "deterministische Kellerautomaten" betrachtet, dann können die nicht mehr alle Sprachen erkennen, die ein nichtdeterministischer Kellerautomat erkennen kann. Dies steht im Gegensatz zu DEAs und NEAs, die bekanntlich gleichmächtig sind.

  • @tonikaiser2823
    @tonikaiser2823 5 ปีที่แล้ว +1

    get das auch für kontextsensitive Krammatiken?

    • @oliveryt7168
      @oliveryt7168 2 ปีที่แล้ว

      "Krammatiken".. ist klar.

  • @drublacky1846
    @drublacky1846 2 ปีที่แล้ว +5

    Mit jedem deiner Videos verliert mein Skript etwas von seinem Schrecken 😅

  • @DA-rp1wg
    @DA-rp1wg 4 ปีที่แล้ว

    Erstmal Danke für das Video.
    Muss das Keller nicht leer sein,damit das Wort akzeptiert wird ??

    • @NLogSpace
      @NLogSpace  4 ปีที่แล้ว +1

      Es gibt verschiedene Varianten von Kellerautomaten. Bei diesen hier muss der Keller nicht unbedingt leer sein, aber der Automat muss das Wort zu Ende gelesen haben und in einem Endzustand sein.

    • @DA-rp1wg
      @DA-rp1wg 4 ปีที่แล้ว

      @@NLogSpace Wie stellt man fest um welche Variante es sich handelt ?
      Ich schreibe morgen Grundlagen der Informatik Klausur :D

    • @mbu8636
      @mbu8636 3 ปีที่แล้ว

      Ich habe das auch aus unserem Skript so verstanden, dass ein Automat in jedem Fall das Wort ganz gelesen haben muss, dann ist aber egal ob er einen Endzustand erreicht hat wenn der Keller leer ist, weil der Automat dann auch nicht weiter kann.
      Finde Deine Schritt für Schritt Erklärung aber wunderbar, macht vieles wesentlich einfacher verständlich. Warum müssen sich die Profs immer so kompliziert ausdrücken🥸

    • @oliveryt7168
      @oliveryt7168 2 ปีที่แล้ว

      @@mbu8636 bei uns steht, dass der Keller leer sein muss.

  • @a.y5742
    @a.y5742 7 ปีที่แล้ว

    Super video um ins Thema reinzukommen. Wie machst du das bloß mit dem Erklären?
    Edit: Muss mein Stack leer (bzw c0) sein, damit mein Pfad beim erreichen des Endzustands als erfolgreich gilt?

    • @NLogSpace
      @NLogSpace  7 ปีที่แล้ว

      Viel Übung und viel über die Sachen nachdenken!
      Zu der Frage: Es gibt verschiedene Definitionen von Kellerautomaten, die alle die selben Sprachen erzeugen können. In der Definition hier fordere ich nicht, dass der Keller leer oder C0 sein muss, in späteren Videos hingegen manchmal schon.

    • @a.y5742
      @a.y5742 7 ปีที่แล้ว

      Okay ich hab hier nämlich eine Aufgabe grade vor mir liegen und es geht mir wie folgt:
      Wenn ich den Endzustand betrete (aber halt nicht abschliese, noch nicht) hab ich ein c0 im Stack liegen. eine Zulässige eingabe würde bedeuten, dass ich aus c0 ein Epsilon mache(= c0 raus poppen aus dem stack), wenn ich die benötigte Eingabe (die vom Endzustand zum Endzustand zeigt) tätige. Frage ist: darf ich c0 aus dem Stack "rauspoppen" ?

    • @NLogSpace
      @NLogSpace  7 ปีที่แล้ว

      Ich verstehe die Frage nicht ganz. Aber wenn man einen Übergang von dem Endzustand auf sich selbst macht, der mit "epsilon;C0->epsilon" beschriftet ist, dann kann man, nachdem man das Eingabewort zu Ende gelesen hat und in diesem Zustand landet, auch noch das C0 vom Keller löschen, damit der Keller leer wird.

    • @a.y5742
      @a.y5742 7 ปีที่แล้ว +1

      Danke für die Antwort. Ich bin im Ausdrücken wirklich nicht so gut :D
      Ich hab die Aufgabe nochmal revue passieren lassen, es blieb mir nichts anderes als c0 aus dem stack rauswerfen zu lassen. Hat gepasst. Ohne dich wär ich nicht so weit gekommen. Du rettest mir quasi das semester in Automaten und Formale sprachen :D

  • @ey7004
    @ey7004 4 ปีที่แล้ว +1

    Kann mir jmd nichmal zusammenfassen wann Lkel und wann Lautomat gilt?

  • @jurgenkoslowski2097
    @jurgenkoslowski2097 9 ปีที่แล้ว

    Sehr nuetzliches Video, und ueberhaupt eine huebsche Reihe. Aber ich wuerde gern zwei Ergaenzungen sehen: (0) Wozu braucht man das Kellerendsymbol C_0 wirklich, wenn mit Hilfe von Endzustaenden erkannt werden soll? Wenn es Teil des Kelleralphabets ist, darf man es spaeter erneut auf den Keller schreiben? Wenn nicht, wir der ganze Formalismus sehr unelegant. Was spricht dagegen, den leeren Keller erkennen zu koennen? (1) Es gibt (mindestens) eine zweite Moeglichkeit, Woerter mit einem Kellerautomaten zu erkennen, naemich indem man einen urspruenglich nichtleeren Keller leert; zweckmaessigerweise sollten dann keine Uebergaenge mehr moeglich sein. Auf diese Weise lassen sich kontextfreie Grammatiken direkt in Kellelrautomaten mit nur einem Zustand uebersetzen. (Und im Hinblick auf die Greibach Normalform ist dann auch klar, dass die \eps-Uebergaenge immer eleiminiert werden koennen.) Vielleicht in Nr 29 (hab' ich noch noch nicht gesehen).

    • @kahzn
      @kahzn 6 ปีที่แล้ว

      Tatsächlich wird, wenn man z.B. nach dem Buch von Uwe Schöning ("Theoretische Informatik - kurz gefasst"), lernt, beim Kellerautomaten das Wort dann erkannt, wenn der Keller am Ende leer ist. Das würde auch erklären, warum zu Beginn der Worterkennung unbedingt schon ein Zeichen im Keller vorhanden sein muss. Ich bin mir aber nicht sicher, ob dieser Teil der Lösung im Video dadurch falsch ist oder nicht.

  • @user-ek4ql1xw2o
    @user-ek4ql1xw2o 11 หลายเดือนก่อน

    Warum darf das letzte b zweimal gelesen werden, wäre das nicht dann ein neues Wort? Also aabbb?

  • @f-rosti952
    @f-rosti952 3 ปีที่แล้ว

    Töp!